########################################################
##
## ixColorer
## version 1.0
##
## Copyright (c) 2003 by Oleg Volchkov
## e-mail: sumo@proc.ru
##
########################################################
@CLASS
ixColorer

@create[aStr][lTmp]
## Конструктор класса
## aStr          Строка с парсерным кодом.
  $lTmp[$aStr]
  $_str[^lTmp.normalize[]]

  $_str[^_str.match[(<[^^!\?]*?>)][gi]{<b>$match.1</b>}]
  $_str[^_str.match[(<\?.*?\?>)][gi]{<i>$match.1</i>}]
  $_str[^_str.match[(<!--.*-->)][gi]{<ins>$match.1</ins>}]
  $_str[^_str.match[(".*?")][gi]{<s>$match.1</s>}]
  $_str[^_str.match[('.*?')][gi]{<s>$match.1</s>}]
  $_str[^_str.match[(<!\[CDATA\[)(.*?)(\]\]>)][gi]{<strong>$match.1<em>$match.2</em>$match.3</strong>}]


@load[aFileName]
## Конструктор класса.
## Производит загрузку файла и обработку полученной строки.
## aFileName      Имя файла с парсерным кодом.
  $_file[^file::load[text;$aFileName]]
  $_str[^taint[html][$_file.text]]

  $_str[^_str.match[(<[^^!\?]*?>)][gi]{<b>$match.1</b>}]
  $_str[^_str.match[(<\?.*?\?>)][gi]{<i>$match.1</i>}]
  $_str[^_str.match[(<!--.*-->)][gi]{<ins>$match.1</ins>}]
  $_str[^_str.match[(".*?")][gi]{<s>$match.1</s>}]
  $_str[^_str.match[('.*?')][gi]{<s>$match.1</s>}]
  $_str[^_str.match[(<!\[CDATA\[)(.*?)(\]\]>)][gi]{<strong>$match.1<em>$match.2</em>$match.3</strong>}]


@getString[]
## Возвращает преобразованную строку.
  $result[$_str]


@getTable[]
## Возвращает преобразованную строку в виде таблицы [построчно].
## Нужно, если хотите вывести с нумерацией строк.
  $result[^_str.split[^#0A][v]]
